const {resolve} = require('path');

const express = require('express');

const app = express();

//导入
const formidable = require('formidable');

// 生成解析对象
let readFile = formidable({
    uploadDir:resolve(__dirname, './public/upload'),  //存储文件地址
    keepExtensions: true,  // 保留文件后缀
    maxFieldsSize:1024*1024 //限制上传文件大小 （单位：字节） 1M
});

// 设置路由
app.post('/upload',(req,res)=>{

    // 图片、数据、表单元素

    // 解析req对象
    // 参数1：req对象
    // 参数2：回调函数
        // 参数1：err错误对象 - 当上传失败时 产生的错误对象
        // 参数2：fields 字段数据 - 表单元素的key和val传递
        // 参数3：files 文件数据 - 图片、视频、压缩包传递

        // 如果表单中 有 username/pwd
    readFile.parse(req,(err,fields,files)=>{
        if(err){
           return res.json({
                code:"2001",
                message:"抱歉，上传失败"
            });
        }

        console.log(fields);

        // 获取字段数据
        let {username,pwd} = fields;

        console.log('file',files);

        // 获取文件数据
        let {profile} = files;

        // console.log();

        //返回上传的数据
        res.json({
            username,
            pwd,
            profile
        })
    });
});


app.listen(80,()=>{
    console.log("上传接口启动成功");
});